package com.oraycn.esbasic.tools.imageCropper;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.provider.MediaStore;

import java.io.File;

public class CropIntent {

    public static final String ASPECT_X = "aspectX";
    public static final String ASPECT_Y = "aspectY";
    public static final String OUTPUT_X = "outputX";
    public static final String OUTPUT_Y = "outputY";
    public static final String MAX_OUTPUT_X = "maxOutputX";
    public static final String MAX_OUTPUT_Y = "maxOutputY";
    public static final String Draw_Square="drawSquare";

    private Intent mCropIntent = new Intent();

    /**
     * Set the source image filepath
     * 设置源图像路径 （未设置默认打开相册，从相册中选取）
     */
    public void setImagePath(String filepath) {
        setImagePath(Uri.fromFile(new File(filepath)));
    }

    /**
     * Set the source image Uri
     * 设置源图像Uri （未设置默认打开相册，从相册中选取）
     */
    public void setImagePath(Uri uri) {
        mCropIntent.setData(uri);
    }

    /**
     * 设置图片输出路径 （如相对路径 /sdcard/cropped.jpg）
     */
    public void setOutputPath(String filepath) {
        setOutputPath(Uri.fromFile(new File(filepath)));
    }

    /**
     * 设置图片输出Uri （如相对路径 /sdcard/cropped.jpg）
     */
    public void setOutputPath(Uri uri) {
        mCropIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
    }


    /**
     * 设置横纵比率（只支持右下角拖动截取）
     */
    public void setAspect(int x, int y) {
        mCropIntent.putExtra(ASPECT_X, x);
        mCropIntent.putExtra(ASPECT_Y, y);
    }

    /**
     * 设置输入图像的尺寸
     * @param x 宽度
     * @param y 高度
     */
    public void setOutputSize(int x, int y) {
        mCropIntent.putExtra(OUTPUT_X, x);
        mCropIntent.putExtra(OUTPUT_Y, y);
    }

    /**
     * 设置这最大的裁剪尺寸  （若执行setOutputSize，则忽略该最大尺寸的设置）
     * @param x 最大宽度
     * @param y 最大高度
     */
    public void setMaxOutputSize(int x, int y) {
        mCropIntent.putExtra(MAX_OUTPUT_X, x);
        mCropIntent.putExtra(MAX_OUTPUT_Y, y);
    }

    public void setDrawSquare(boolean isDrawSquare)
    {
        mCropIntent.putExtra(CropIntent.Draw_Square,isDrawSquare);
    }

    /**
     * 获取裁剪图片的Intent （Intent包含裁剪的各种参数）
     *
     */
    public Intent getIntent(Context context) {
        mCropIntent.setClass(context, CropImageActivity.class);
        return mCropIntent;
    }
}
